package com.lx.filter;

import javax.servlet.*;
import java.io.IOException;

public class CharacterEncodingFilter implements javax.servlet.Filter {
    //初始化：web服务器启动的时候，就已经初始化了， 随时等待过滤对象出现，跟服务器一起初始化
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("CharacterEncodingFilter Init------------------------");
    }

    //过滤器中所有代码，在过滤特定请求时都会执行（xml中配置过滤器可以拦截哪些路径的请求）
    //必须要让过滤器继续通行，这个代码必须写filterChain.doFilter();
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        servletRequest.setCharacterEncoding("utf-8");
        servletResponse.setCharacterEncoding("utf-8");
        servletResponse.setContentType("text/html;charsetUTF-8");

        //必须要执行这个方法，否则代码到这就会被拦截停
        filterChain.doFilter(servletRequest,servletResponse);
    }

    //销毁：web服务器关闭的时候，过滤器会销毁
    public void destroy() {
        System.out.println("CharacterEncodingFilter Destroy------------------------");
    }
}
